AWS CLI v2でCloudWatch Logsを確認してみた #reinvent
はじめに
こんにちは、コンサル部の望月です。
re:invent2018もアディショナルタイムに入りました。
AWS CLI v2セッションを見て、AWS CLI v2を触りたいと思っていて
せっかくなのでAWS CLI v2の新機能を試してみました。
試した新機能はCloudWatch Logsグループの最新のログを表示することができるaws logs tailコマンドです。詳しくは下記記事を確認してください。
AWS CLI 2.0.0dev preview release
やってみた
前提
AWS CLIやCloudWatch Logsを使う権限を持つIAMロールをEC2インスタンスに割り当て済みとなります。
AWS CLI v2インストール
まずは、Amazon Linux 2にAWS CLI v2のインストールを行います。
インストール方法は下記ブログを参考にしました。
現状の環境確認
$ aws --version aws-cli/1.15.80 Python/2.7.14 Linux/4.14.77-81.59.amzn2.x86_64 botocore/1.10.79 $ python --version Python 2.7.14
pipとgitが必要となるので、合わせインストールを行いました。
$ sudo yum install python2-pip $ sudo yum install git $ sudo pip install -e git://github.com/aws/aws-cli.git@v2#egg=awscli $ aws --version aws-cli/2.0.0dev0 Python/2.7.14 Linux/4.14.77-86.82.amzn2.x86_64 botocore/1.12.48
CloudWatch Logsへログ出力
AWS CLI v2をインストールしたAmazon Linux 2からawslogsを使い、CloudWatch Logsへログ出力を行います。
$ yum install -y awslogs
awslogsの認証情報を設定します。
$ sudo vi /etc/awslogs/awscli.conf [plugins] cwlogs = cwlogs [default] region = ap-northeast-1
awslogsを起動します。
$ sudo systemctl start awslogsd.service $ sudo systemctl status awslogsd.service
aws logs tailでログ出力の確認
awslogsのデフォルト設定で/var/log/messagesログをCloudWatch Logsに出力するため、aws logs tailでログ出力されていることを確認します。
$ aws logs tail /var/log/messages /aws/lambda/test-lambda CloudTrail/DefaultLogGroup $ aws logs tail /var/log/messages 2018-12-16T02:37:42+00:00 i-xxxxxxxxxxxxxxxxx Dec 16 02:37:42 ip-10-0-0-147 dhclient[3012]: XMT: Solicit on eth0, interval 121290ms. 2018-12-16T02:38:05+00:00 i-xxxxxxxxxxxxxxxxx Dec 16 02:38:05 ip-10-0-0-147 amazon-ssm-agent: 2018-12-16 02:38:05 INFO [HealthCheck] HealthCheck reporting agent health. 2018-12-16T02:39:44+00:00 i-xxxxxxxxxxxxxxxxx Dec 16 02:39:44 ip-10-0-0-147 dhclient[3012]: XMT: Solicit on eth0, interval 115890ms. 2018-12-16T02:40:01+00:00 i-xxxxxxxxxxxxxxxxx Dec 16 02:40:01 ip-10-0-0-147 systemd: Created slice User Slice of root. 2018-12-16T02:40:01+00:00 i-xxxxxxxxxxxxxxxxx Dec 16 02:40:01 ip-10-0-0-147 systemd: Starting User Slice of root. 2018-12-16T02:40:01+00:00 i-xxxxxxxxxxxxxxxxx Dec 16 02:40:01 ip-10-0-0-147 systemd: Started Session 127 of user root. 2018-12-16T02:40:01+00:00 i-xxxxxxxxxxxxxxxxx Dec 16 02:40:01 ip-10-0-0-147 systemd: Starting Session 127 of user root. 2018-12-16T02:40:01+00:00 i-xxxxxxxxxxxxxxxxx Dec 16 02:40:01 ip-10-0-0-147 systemd: Removed slice User Slice of root. 2018-12-16T02:40:01+00:00 i-xxxxxxxxxxxxxxxxx Dec 16 02:40:01 ip-10-0-0-147 systemd: Stopping User Slice of root. 2018-12-16T02:40:33+00:00 i-xxxxxxxxxxxxxxxxx Dec 16 02:40:33 ip-10-0-0-147 amazon-ssm-agent: 2018-12-16 02:40:33 INFO [MessagingDeliveryService] [Association] Schedule manager refreshed with 0 associations, 0 new associations associated 2018-12-16T02:41:40+00:00 i-xxxxxxxxxxxxxxxxx Dec 16 02:41:40 ip-10-0-0-147 dhclient[3012]: XMT: Solicit on eth0, interval 120430ms. 2018-12-16T02:43:04+00:00 i-xxxxxxxxxxxxxxxxx Dec 16 02:43:04 ip-10-0-0-147 systemd: Started awslogs daemon. 2018-12-16T02:43:04+00:00 i-xxxxxxxxxxxxxxxxx Dec 16 02:43:04 ip-10-0-0-147 systemd: Starting awslogs daemon... 2018-12-16T02:43:05+00:00 i-xxxxxxxxxxxxxxxxx Dec 16 02:43:05 ip-10-0-0-147 amazon-ssm-agent: 2018-12-16 02:43:05 INFO [HealthCheck] HealthCheck reporting agent health. 2018-12-16T02:43:40+00:00 i-xxxxxxxxxxxxxxxxx Dec 16 02:43:40 ip-10-0-0-147 dhclient[3012]: XMT: Solicit on eth0, interval 113680ms. 2018-12-16T02:45:26+00:00 i-xxxxxxxxxxxxxxxxx Dec 16 02:45:26 ip-10-0-0-147 amazon-ssm-agent: 2018-12-16 02:45:26 INFO [LongRunningPluginsManager] There are no long running plugins currently getting executed - skipping their healthcheck 2018-12-16T02:45:34+00:00 i-xxxxxxxxxxxxxxxxx Dec 16 02:45:34 ip-10-0-0-147 dhclient[3012]: XMT: Solicit on eth0, interval 120530ms.
まとめ
aws logs tailコマンドを使って、CloudWatch Logsのログを表示することができました。Tab補完でロググループ名も補完できるため、思った以上に簡単に使うことができました。
こういったCloudWatch Logsの設定後の確認がEC2内で完結するため、動作確認の手間が省けていい感じです。また、ちょっとしたログ確認にも使えそうです。